/***************************************************************************
 *   Copyright (C) 2008 by						   *
 *          Ali Abdou							   *
 *          Camille Gallet						   *
 *          Rémy Hubscher						   *
 *          Regis Strub							   *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

#ifndef __MOVING_H
#define __MOVING_H


/**
  *This class model a moving to do in the game
  */
class Moving{
    public:
      enum kind {PUT_CHECKER,MOVE_CHECKER,MOVE_SQUARE,MOVE_DOUBLE_SQUARE,MOVE_ERROR};

      /**
       * Default constuctor
       */
      Moving(){};
      /**
       * Constructor with all the parameters
       * @param int the coordinate of the point to move or QPair(-1,-1)
       * @param int to coordinate of the box where the moving will be done
       * @param Moving::kind the kind of move
       */
      Moving(int from,int to,Moving::kind k);

      //getters and setters
      int getFrom(){return f;}
      int getTo(){return t;}
      Moving::kind getKind(){return ki;}
      void setFrom(int  from){f=from;}
      void setTo(int to){t=to;}
      void setKind(Moving::kind k){ki=k;}


    private:
      int f,t;
      Moving::kind ki;

};

#endif // __MOVING_H
